﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace VideoPlay.Services
{
    public interface IPhoneService
    {
        /// <summary>
        /// Get all categories of specific page
        /// </summary>
        /// <param name="categoryId"></param>
        /// <param name="page"></param>
        /// <param name="numberOfRows"></param>
        /// <param name="onCompleted">an method with List<Video> param</param>
        void RetrieveCategoriesAsync(Action<object> onCompleted);

        /// <summary>
        /// Get all videos of specific page
        /// </summary>
        /// <param name="categoryId"></param>
        /// <param name="page"></param>
        /// <param name="numberOfRows"></param>
        /// <param name="onCompleted">an method with List<Video> param</param>
        void RetrieveVideosAsync(int categoryId, int page, int numberOfRows, Action<object> onCompleted);

        /// <summary>
        /// Search videos that match with term
        /// </summary>
        /// <param name="term"></param>
        /// <param name="page"></param>
        /// <param name="numberOfRows"></param>
        /// <returns></returns>
        void SearchVideos(string term, int page, int numberOfRows, Action<object> onCompleted);

        void SearchVideosV2(string term, int page, int numberOfRows, Action<object> onCompleted);

        /// <summary>
        /// Share the video on social network
        /// </summary>
        /// <param name="videoUrl"></param>
        /// <param name="message"></param>
        void ShareVideo(string videoUrl, string message);

        /// <summary>
        /// Like or unlike video
        /// </summary>
        /// <param name="video"></param>
        void LikeUnLike(Models.List video);
    }
}
